<!DOCTYPE html>
<html lang="en-us">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">




<title>MySQL NDB Cluster 7.5 | DevOS 实验室</title>

<link rel="stylesheet" href="https://miaows.gitee.io//css/styles.css">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" 
integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>


<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/zenburn.min.css" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js" integrity="sha256-/BfiIkHlHoVihZdc6TFuj7MmJ0TWcWsMXkeDFwhi0zw=" crossorigin="anonymous"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="https://miaows.gitee.io//js/highlight.js"></script>






<div class="container">
    <nav class="navbar level">
      <div class="navbar-brand">
          <a class="nav-item" href="https://miaows.gitee.io/"><h1 class="title is-3">DevOS 实验室</h1></a>
      </div>           
      <div class="navbar-menu has-text-centered is-active">
          <div class="navbar-end is-centered">
              
                <a href="https://miaows.gitee.io/about.html" rel="me">
                  <span class="icon">
                    <i class="fas fa-info"></i>
                  </span>
                </a>
              
                <a href="https://gitee.com/miaows" rel="me">
                  <span class="icon">
                    <i class="fab fa-github"></i>
                  </span>
                </a>
              
                <a href="https://www.linkedin.com/in/natarajmb/" rel="me">
                  <span class="icon">
                    <i class="fab fa-linkedin-in"></i>
                  </span>
                </a>
              
                <a href="https://twitter.com/natarajmb" rel="me">
                  <span class="icon">
                    <i class="fab fa-twitter"></i>
                  </span>
                </a>
              
           </div>
      </div>
    </nav>
  </div>

<div class="container">
  <h2 class="subtitle is-6">June 14, 2020</h2>
  <h1 class="subtitle is-size-4-mobile is-size-3-desktop">MySQL NDB Cluster 7.5</h1>
  <div class="content">
    <h1 id="节点">节点</h1>
<table>
<thead>
<tr>
<th align="right">IP</th>
<th align="center">HostName</th>
<th align="left">节点</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">192.168.21.200</td>
<td align="center">mgm.ndb0.miaow.site</td>
<td align="left">管理节点</td>
</tr>
<tr>
<td align="right">192.168.21.210</td>
<td align="center">sql0.ndb0.miaow.site</td>
<td align="left">SQL 节点</td>
</tr>
<tr>
<td align="right">192.168.21.211</td>
<td align="center">sql1.ndb0.miaow.site</td>
<td align="left">SQL 节点</td>
</tr>
<tr>
<td align="right">192.168.21.220</td>
<td align="center">data0.ndb0.miaow.site</td>
<td align="left">data 节点</td>
</tr>
<tr>
<td align="right">192.168.21.221</td>
<td align="center">data1.ndb1.miaow.site</td>
<td align="left">data 节点</td>
</tr>
</tbody>
</table>
<h1 id="系统初始化">系统初始化</h1>
<h2 id="关闭-selinux">关闭 selinux</h2>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">setenforce <span style="color:#ae81ff">0</span>
sed -i s/^SELINUX<span style="color:#f92672">=</span>.*$/SELINUX<span style="color:#f92672">=</span>disabled/ /etc/selinux/config
</code></pre></div><p>删除 MariaDB</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum remove mariadb* -y
</code></pre></div><h2 id="配置-yum-repository">配置 Yum Repository</h2>
<p>7.5 repository 里面的版本为 <em>7.5.18</em> 官方文档版本使用tar 包安装为 <em>7.5.19</em>
yum repo 不包含更低版本 MySQL Cluster，如果要更低的版本，可以上 MySQL 官网去下载：
例如： <a href="https://cdn.mysql.com/archives/mysql-cluster-gpl-7.4/MySQL-Cluster-gpl-7.4.27-1.el7.x86_64.rpm-bundle.tar">7.4.27</a> 版本</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum install -y yum-utils -y <span style="color:#f92672">&amp;&amp;</span>
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm <span style="color:#f92672">&amp;&amp;</span>
yum-config-manager --disable mysql57-community <span style="color:#f92672">&amp;&amp;</span>
yum-config-manager --enable mysql-cluster-7.5-community <span style="color:#f92672">&amp;&amp;</span>
</code></pre></div><p>查看 yum repository 配置</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum repolist enabled <span style="color:#75715e"># 显示所有启动的仓库</span>
yum repolist disabled <span style="color:#75715e"># 显示所有禁用的仓库</span>
yum repolist all <span style="color:#75715e"># 显示所有仓库</span>
</code></pre></div><h1 id="安装">安装：</h1>
<h2 id="管理节点">管理节点：</h2>
<p>负责管理各个节点的Manage 节点主机。</p>
<p>管理节点负责整个Cluster 集群中各个节点的管理工作，包括集群的配置，启动关闭各节点，以及实施数据的备份恢复等。管理节点会获取整个Cluster 环境中各节点的状态和错误信息，并且将各Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。由于管理节点上保存在整个Cluster 环境的配置，同时担任了集群中各节点的基本沟通工作，所以他必须是最先被启动的节点。</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum install -y mysql-cluster-commercial-management-server
</code></pre></div><blockquote>
<p>7.5.4 之后的版本同 ndb 工具 MySQL Client 一起安装</p>
</blockquote>
<h2 id="data-节点">data 节点：</h2>
<p>这种类型的节点存储集群数据. 数据节点的数量是副本的数量乘以片段的数量.分片数量由 <code>config.ini</code> 文件中的 <code>NoOfReplicas</code> 决定。
<code>config.ini</code>文件<code>NoOfReplicas</code>设置为<code>1</code>，则具有4个数据节点的NDB群集将具有4个__节点组__.</p>
<blockquote>
<p>NDB群集中的所有节点组必须具有相同数量的数据节点.
对于两个副本（每个副本都有两个片段），您需要四个数据节点. 一个副本足以存储数据，但不提供冗余. 因此，建议具有2个（或更多）副本以提供冗余，从而提高可用性. 使用命令ndbd</p>
</blockquote>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum install mysql-cluster-community-data-node
</code></pre></div><h2 id="sql-节点">SQL 节点：</h2>
<p>SQL 层的 SQL 服务器节点（后面简称为SQL 节点），也就是我们常说 的Mysql Server：主要负责实现一个数据库在存储层之上的所有事情，比如连接管理，query 优化和响应，cache 管理等等，只有存储层的工作交给了 NDB 数据节点去处理了。也就是说，在纯粹的Mysql  Cluster 环境中的SQL 节点，可以被认为是一个不需要提供任何存储引擎的Mysql服务器，因为他的存储引擎有  Cluster 环境中的 NDB 节点来担任。所以，SQL 层各 Mysql 服务器的启动与普通的 Mysql 启动有一定的区别，必须要添加 <code>ndbcluster</code> 项，可以添加在</p>
<p>my.cnf 配置文件中，也可以通过启动命令行来指定。</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum install mysql-cluster-community-server
</code></pre></div><blockquote>
<p>虽然NDB集群SQL节点使用mysqld 服务器守护进程，但它与MySQL 5.7发行版提供的mysqld二进制文件有许多关键方面的不同 ，而且这两个版本的 mysqld是不可互换的。
未连接到NDB群集的MySQL服务器不能使用NDB存储引擎，也不能访问任何NDB群集数据。</p>
</blockquote>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">yum install -y yum-utils -y
yum install -y <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>    https://repo.mysql.com/mysql-cluster-community-minimal-release-el7.rpm <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>    https://repo.mysql.com/mysql-community-release-el7.rpm <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>  <span style="color:#f92672">&amp;&amp;</span> yum-config-manager --enable mysql-cluster75-minimal <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>  <span style="color:#f92672">&amp;&amp;</span> yum install -y <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>  mysql-cluster-community-server-minimal-7.5.18 <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>  mysql-shell-8.0.20 <span style="color:#ae81ff">\
</span><span style="color:#ae81ff"></span>  libpwquality
</code></pre></div>
  </div>
</div>
<div class="container has-text-centered">
    
</div>

<div class="container has-text-centered">
  
</div>
<section class="section">
  <div class="container has-text-centered">
    <p>&copy; <a href="https://miaows.gitee.io">Miaows 🐱 </a> 2020</p>
  </div>
</section>


